﻿
namespace HSS.Xaml.UI.Media
{
	#region Using Directives
	using System;
	using System.ComponentModel;
	using System.Reflection;
	using System.Windows.Media;

	#endregion

	#region KnownColor
	/// <summary>
	/// A struct containing all known colors (141), along with some operators providing implicit and explicit conversions
	/// </summary>
	/// <remarks>
	/// <para>KnownColors is to deal with the lack of full color support from Code in SL</para>
	/// <para>thanks to Jabb... http://silverlight.net/forums/t/13225.aspx</para>
	/// </remarks>
	[TypeConverter(typeof(ColorConverter))]
	public struct KnownColor
	{
		#region Fields

		private Int64 ColorValue;

		#region Named Colors
		/// <summary>
		/// KnownColor UnknownColor = 0
		/// </summary>
		public static readonly KnownColor UnknownColor = 0;
		/// <summary>
		/// KnownColor AliceBlue = 0xFFF0F8FF
		/// </summary>
		public static readonly KnownColor AliceBlue = 0xFFF0F8FF;
		/// <summary>
		/// KnownColor AntiqueWhite = 0xFFFAEBD7
		/// </summary>
		public static readonly KnownColor AntiqueWhite = 0xFFFAEBD7;
		/// <summary>
		/// KnownColor Aqua = 0xFF00FFFF
		/// </summary>
		public static readonly KnownColor Aqua = 0xFF00FFFF;
		/// <summary>
		/// KnownColor Aquamarine = 0xFF7FFFD4
		/// </summary>
		public static readonly KnownColor Aquamarine = 0xFF7FFFD4;
		/// <summary>
		/// KnownColor Azure = 0xFFF0FFFF
		/// </summary>
		public static readonly KnownColor Azure = 0xFFF0FFFF;
		/// <summary>
		/// KnownColor Beige = 0xFFF5F5DC
		/// </summary>
		public static readonly KnownColor Beige = 0xFFF5F5DC;
		/// <summary>
		/// KnownColor Bisque = 0xFFFFE4C4
		/// </summary>
		public static readonly KnownColor Bisque = 0xFFFFE4C4;
		/// <summary>
		/// KnownColor Black = 0xFF000000
		/// </summary>
		public static readonly KnownColor Black = 0xFF000000;
		/// <summary>
		/// KnownColor BlanchedAlmond = 0xFFFFEBCD
		/// </summary>
		public static readonly KnownColor BlanchedAlmond = 0xFFFFEBCD;
		/// <summary>
		/// KnownColor Blue = 0xFF0000FF
		/// </summary>
		public static readonly KnownColor Blue = 0xFF0000FF;
		/// <summary>
		/// KnownColor BlueViolet = 0xFF8A2BE2
		/// </summary>
		public static readonly KnownColor BlueViolet = 0xFF8A2BE2;
		/// <summary>
		/// KnownColor Brown = 0xFFA52A2A
		/// </summary>
		public static readonly KnownColor Brown = 0xFFA52A2A;
		/// <summary>
		/// KnownColor BurlyWood = 0xFFDEB887
		/// </summary>
		public static readonly KnownColor BurlyWood = 0xFFDEB887;
		/// <summary>
		/// KnownColor CadetBlue = 0xFF5F9EA0
		/// </summary>
		public static readonly KnownColor CadetBlue = 0xFF5F9EA0;
		/// <summary>
		/// KnownColor Chartreuse = 0xFF7FFF00
		/// </summary>
		public static readonly KnownColor Chartreuse = 0xFF7FFF00;
		/// <summary>
		/// KnownColor Chocolate = 0xFFD2691E
		/// </summary>
		public static readonly KnownColor Chocolate = 0xFFD2691E;
		/// <summary>
		/// KnownColor Coral = 0xFFFF7F50
		/// </summary>
		public static readonly KnownColor Coral = 0xFFFF7F50;
		/// <summary>
		/// KnownColor CornflowerBlue = 0xFF6495ED
		/// </summary>
		public static readonly KnownColor CornflowerBlue = 0xFF6495ED;
		/// <summary>
		/// KnownColor Cornsilk = 0xFFFFF8DC
		/// </summary>
		[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Cornsilk")]
		public static readonly KnownColor Cornsilk = 0xFFFFF8DC;
		/// <summary>
		/// KnownColor Crimson = 0xFFDC143C
		/// </summary>
		public static readonly KnownColor Crimson = 0xFFDC143C;
		/// <summary>
		/// KnownColor Cyan = 0xFF00FFFF
		/// </summary>
		public static readonly KnownColor Cyan = 0xFF00FFFF;
		/// <summary>
		/// KnownColor DarkBlue = 0xFF00008B
		/// </summary>
		public static readonly KnownColor DarkBlue = 0xFF00008B;
		/// <summary>
		/// KnownColor DarkCyan = 0xFF008B8B
		/// </summary>
		public static readonly KnownColor DarkCyan = 0xFF008B8B;
		/// <summary>
		/// KnownColor DarkGoldenrod = 0xFFB8860B
		/// </summary>
		public static readonly KnownColor DarkGoldenrod = 0xFFB8860B;
		/// <summary>
		/// KnownColor DarkGray = 0xFFA9A9A9
		/// </summary>
		public static readonly KnownColor DarkGray = 0xFFA9A9A9;
		/// <summary>
		/// KnownColor DarkGreen = 0xFF006400
		/// </summary>
		public static readonly KnownColor DarkGreen = 0xFF006400;
		/// <summary>
		/// KnownColor DarkKhaki = 0xFFBDB76B
		/// </summary>
		public static readonly KnownColor DarkKhaki = 0xFFBDB76B;
		/// <summary>
		/// KnownColor DarkMagenta = 0xFF8B008B
		/// </summary>
		public static readonly KnownColor DarkMagenta = 0xFF8B008B;
		/// <summary>
		/// KnownColor DarkOliveGreen = 0xFF556B2F
		/// </summary>
		public static readonly KnownColor DarkOliveGreen = 0xFF556B2F;
		/// <summary>
		/// KnownColor DarkOrange = 0xFFFF8C00
		/// </summary>
		public static readonly KnownColor DarkOrange = 0xFFFF8C00;
		/// <summary>
		/// KnownColor DarkOrchid = 0xFF9932CC
		/// </summary>
		public static readonly KnownColor DarkOrchid = 0xFF9932CC;
		/// <summary>
		/// KnownColor DarkRed = 0xFF8B0000
		/// </summary>
		public static readonly KnownColor DarkRed = 0xFF8B0000;
		/// <summary>
		/// KnownColor DarkSalmon = 0xFFE9967A
		/// </summary>
		public static readonly KnownColor DarkSalmon = 0xFFE9967A;
		/// <summary>
		/// KnownColor DarkSeaGreen = 0xFF8FBC8F
		/// </summary>
		public static readonly KnownColor DarkSeaGreen = 0xFF8FBC8F;
		/// <summary>
		/// KnownColor DarkSlateBlue = 0xFF483D8B
		/// </summary>
		public static readonly KnownColor DarkSlateBlue = 0xFF483D8B;
		/// <summary>
		/// KnownColor DarkSlateGray = 0xFF2F4F4F
		/// </summary>
		public static readonly KnownColor DarkSlateGray = 0xFF2F4F4F;
		/// <summary>
		/// KnownColor DarkTurquoise = 0xFF00CED1
		/// </summary>
		public static readonly KnownColor DarkTurquoise = 0xFF00CED1;
		/// <summary>
		/// KnownColor DarkViolet = 0xFF9400D3
		/// </summary>
		public static readonly KnownColor DarkViolet = 0xFF9400D3;
		/// <summary>
		/// KnownColor DeepPink = 0xFFFF1493
		/// </summary>
		public static readonly KnownColor DeepPink = 0xFFFF1493;
		/// <summary>
		/// KnownColor DeepSkyBlue = 0xFF00BFFF
		/// </summary>
		public static readonly KnownColor DeepSkyBlue = 0xFF00BFFF;
		/// <summary>
		/// KnownColor DimGray = 0xFF696969
		/// </summary>
		public static readonly KnownColor DimGray = 0xFF696969;
		/// <summary>
		/// KnownColor DodgerBlue = 0xFF1E90FF
		/// </summary>
		public static readonly KnownColor DodgerBlue = 0xFF1E90FF;
		/// <summary>
		/// KnownColor Firebrick = 0xFFB22222
		/// </summary>
		public static readonly KnownColor Firebrick = 0xFFB22222;
		/// <summary>
		/// KnownColor FloralWhite = 0xFFFFFAF0
		/// </summary>
		public static readonly KnownColor FloralWhite = 0xFFFFFAF0;
		/// <summary>
		/// KnownColor ForestGreen = 0xFF228B22
		/// </summary>
		public static readonly KnownColor ForestGreen = 0xFF228B22;
		/// <summary>
		/// KnownColor Fuchsia = 0xFFFF00FF
		/// </summary>
		public static readonly KnownColor Fuchsia = 0xFFFF00FF;
		/// <summary>
		/// KnownColor Gainsboro = 0xFFDCDCDC
		/// </summary>
		[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Gainsboro")]
		public static readonly KnownColor Gainsboro = 0xFFDCDCDC;
		/// <summary>
		/// KnownColor GhostWhite = 0xFFF8F8FF
		/// </summary>
		public static readonly KnownColor GhostWhite = 0xFFF8F8FF;
		/// <summary>
		/// KnownColor Gold = 0xFFFFD700
		/// </summary>
		public static readonly KnownColor Gold = 0xFFFFD700;
		/// <summary>
		/// KnownColor Goldenrod = 0xFFDAA520
		/// </summary>
		public static readonly KnownColor Goldenrod = 0xFFDAA520;
		/// <summary>
		/// KnownColor Gray = 0xFF808080
		/// </summary>
		public static readonly KnownColor Gray = 0xFF808080;
		/// <summary>
		/// KnownColor Green = 0xFF008000
		/// </summary>
		public static readonly KnownColor Green = 0xFF008000;
		/// <summary>
		/// KnownColor GreenYellow = 0xFFADFF2F
		/// </summary>
		public static readonly KnownColor GreenYellow = 0xFFADFF2F;
		/// <summary>
		/// KnownColor Honeydew = 0xFFF0FFF0
		/// </summary>
		public static readonly KnownColor Honeydew = 0xFFF0FFF0;
		/// <summary>
		/// KnownColor HotPink = 0xFFFF69B4
		/// </summary>
		public static readonly KnownColor HotPink = 0xFFFF69B4;
		/// <summary>
		/// KnownColor IndianRed = 0xFFCD5C5C
		/// </summary>
		public static readonly KnownColor IndianRed = 0xFFCD5C5C;
		/// <summary>
		/// KnownColor Indigo = 0xFF4B0082
		/// </summary>
		public static readonly KnownColor Indigo = 0xFF4B0082;
		/// <summary>
		/// KnownColor Ivory = 0xFFFFFFF0
		/// </summary>
		public static readonly KnownColor Ivory = 0xFFFFFFF0;
		/// <summary>
		/// KnownColor Khaki = 0xFFF0E68C
		/// </summary>
		public static readonly KnownColor Khaki = 0xFFF0E68C;
		/// <summary>
		/// KnownColor Lavender = 0xFFE6E6FA
		/// </summary>
		public static readonly KnownColor Lavender = 0xFFE6E6FA;
		/// <summary>
		/// KnownColor LavenderBlush = 0xFFFFF0F5
		/// </summary>
		public static readonly KnownColor LavenderBlush = 0xFFFFF0F5;
		/// <summary>
		/// KnownColor LawnGreen = 0xFF7CFC00
		/// </summary>
		public static readonly KnownColor LawnGreen = 0xFF7CFC00;
		/// <summary>
		/// KnownColor LemonChiffon = 0xFFFFFACD
		/// </summary>
		public static readonly KnownColor LemonChiffon = 0xFFFFFACD;
		/// <summary>
		/// KnownColor LightBlue = 0xFFADD8E6
		/// </summary>
		public static readonly KnownColor LightBlue = 0xFFADD8E6;
		/// <summary>
		/// KnownColor LightCoral = 0xFFF08080
		/// </summary>
		public static readonly KnownColor LightCoral = 0xFFF08080;
		/// <summary>
		/// KnownColor LightCyan = 0xFFE0FFFF
		/// </summary>
		public static readonly KnownColor LightCyan = 0xFFE0FFFF;
		/// <summary>
		/// KnownColor LightGoldenrodYellow = 0xFFFAFAD2
		/// </summary>
		public static readonly KnownColor LightGoldenrodYellow = 0xFFFAFAD2;
		/// <summary>
		/// KnownColor LightGray = 0xFFD3D3D3
		/// </summary>
		public static readonly KnownColor LightGray = 0xFFD3D3D3;
		/// <summary>
		/// KnownColor LightGreen = 0xFF90EE90
		/// </summary>
		public static readonly KnownColor LightGreen = 0xFF90EE90;
		/// <summary>
		/// KnownColor LightPink = 0xFFFFB6C1
		/// </summary>
		public static readonly KnownColor LightPink = 0xFFFFB6C1;
		/// <summary>
		/// KnownColor LightSalmon = 0xFFFFA07A
		/// </summary>
		public static readonly KnownColor LightSalmon = 0xFFFFA07A;
		/// <summary>
		/// KnownColor LightSeaGreen = 0xFF20B2AA
		/// </summary>
		public static readonly KnownColor LightSeaGreen = 0xFF20B2AA;
		/// <summary>
		/// KnownColor LightSkyBlue = 0xFF87CEFA
		/// </summary>
		public static readonly KnownColor LightSkyBlue = 0xFF87CEFA;
		/// <summary>
		/// KnownColor LightSlateGray = 0xFF778899
		/// </summary>
		public static readonly KnownColor LightSlateGray = 0xFF778899;
		/// <summary>
		/// KnownColor LightSteelBlue = 0xFFB0C4DE
		/// </summary>
		public static readonly KnownColor LightSteelBlue = 0xFFB0C4DE;
		/// <summary>
		/// KnownColor LightYellow = 0xFFFFFFE0
		/// </summary>
		public static readonly KnownColor LightYellow = 0xFFFFFFE0;
		/// <summary>
		/// KnownColor Lime = 0xFF00FF00
		/// </summary>
		public static readonly KnownColor Lime = 0xFF00FF00;
		/// <summary>
		/// KnownColor LimeGreen = 0xFF32CD32
		/// </summary>
		public static readonly KnownColor LimeGreen = 0xFF32CD32;
		/// <summary>
		/// KnownColor Linen = 0xFFFAF0E6
		/// </summary>
		public static readonly KnownColor Linen = 0xFFFAF0E6;
		/// <summary>
		/// KnownColor Magenta = 0xFFFF00FF
		/// </summary>
		public static readonly KnownColor Magenta = 0xFFFF00FF;
		/// <summary>
		/// KnownColor Maroon = 0xFF800000
		/// </summary>
		public static readonly KnownColor Maroon = 0xFF800000;
		/// <summary>
		/// KnownColor MediumAquamarine = 0xFF66CDAA
		/// </summary>
		public static readonly KnownColor MediumAquamarine = 0xFF66CDAA;
		/// <summary>
		/// KnownColor MediumBlue = 0xFF0000CD
		/// </summary>
		public static readonly KnownColor MediumBlue = 0xFF0000CD;
		/// <summary>
		/// KnownColor MediumOrchid = 0xFFBA55D3
		/// </summary>
		public static readonly KnownColor MediumOrchid = 0xFFBA55D3;
		/// <summary>
		/// KnownColor MediumPurple = 0xFF9370DB
		/// </summary>
		public static readonly KnownColor MediumPurple = 0xFF9370DB;
		/// <summary>
		/// KnownColor MediumSeaGreen = 0xFF3CB371
		/// </summary>
		public static readonly KnownColor MediumSeaGreen = 0xFF3CB371;
		/// <summary>
		/// KnownColor MediumSlateBlue = 0xFF7B68EE
		/// </summary>
		public static readonly KnownColor MediumSlateBlue = 0xFF7B68EE;
		/// <summary>
		/// KnownColor MediumSpringGreen = 0xFF00FA9A
		/// </summary>
		public static readonly KnownColor MediumSpringGreen = 0xFF00FA9A;
		/// <summary>
		/// KnownColor MediumTurquoise = 0xFF48D1CC
		/// </summary>
		public static readonly KnownColor MediumTurquoise = 0xFF48D1CC;
		/// <summary>
		/// KnownColor MediumVioletRed = 0xFFC71585
		/// </summary>
		public static readonly KnownColor MediumVioletRed = 0xFFC71585;
		/// <summary>
		/// KnownColor MidnightBlue = 0xFF191970
		/// </summary>
		public static readonly KnownColor MidnightBlue = 0xFF191970;
		/// <summary>
		/// KnownColor MintCream = 0xFFF5FFFA
		/// </summary>
		public static readonly KnownColor MintCream = 0xFFF5FFFA;
		/// <summary>
		/// KnownColor MistyRose = 0xFFFFE4E1
		/// </summary>
		public static readonly KnownColor MistyRose = 0xFFFFE4E1;
		/// <summary>
		/// KnownColor Moccasin = 0xFFFFE4B5
		/// </summary>
		public static readonly KnownColor Moccasin = 0xFFFFE4B5;
		/// <summary>
		/// KnownColor NavajoWhite = 0xFFFFDEAD
		/// </summary>
		public static readonly KnownColor NavajoWhite = 0xFFFFDEAD;
		/// <summary>
		/// KnownColor Navy = 0xFF000080
		/// </summary>
		public static readonly KnownColor Navy = 0xFF000080;
		/// <summary>
		/// KnownColor OldLace = 0xFFFDF5E6
		/// </summary>
		public static readonly KnownColor OldLace = 0xFFFDF5E6;
		/// <summary>
		/// KnownColor Olive = 0xFF808000
		/// </summary>
		public static readonly KnownColor Olive = 0xFF808000;
		/// <summary>
		/// KnownColor OliveDrab = 0xFF6B8E23
		/// </summary>
		public static readonly KnownColor OliveDrab = 0xFF6B8E23;
		/// <summary>
		/// KnownColor Orange = 0xFFFFA500
		/// </summary>
		public static readonly KnownColor Orange = 0xFFFFA500;
		/// <summary>
		/// KnownColor OrangeRed = 0xFFFF4500
		/// </summary>
		public static readonly KnownColor OrangeRed = 0xFFFF4500;
		/// <summary>
		/// KnownColor Orchid = 0xFFDA70D6
		/// </summary>
		public static readonly KnownColor Orchid = 0xFFDA70D6;
		/// <summary>
		/// KnownColor PaleGoldenrod = 0xFFEEE8AA
		/// </summary>
		public static readonly KnownColor PaleGoldenrod = 0xFFEEE8AA;
		/// <summary>
		/// KnownColor PaleGreen = 0xFF98FB98
		/// </summary>
		public static readonly KnownColor PaleGreen = 0xFF98FB98;
		/// <summary>
		/// KnownColor PaleTurquoise = 0xFFAFEEEE
		/// </summary>
		public static readonly KnownColor PaleTurquoise = 0xFFAFEEEE;
		/// <summary>
		/// KnownColor PaleVioletRed = 0xFFDB7093
		/// </summary>
		public static readonly KnownColor PaleVioletRed = 0xFFDB7093;
		/// <summary>
		/// KnownColor PapayaWhip = 0xFFFFEFD5
		/// </summary>
		public static readonly KnownColor PapayaWhip = 0xFFFFEFD5;
		/// <summary>
		/// KnownColor PeachPuff = 0xFFFFDAB9
		/// </summary>
		public static readonly KnownColor PeachPuff = 0xFFFFDAB9;
		/// <summary>
		/// KnownColor Peru = 0xFFCD853F
		/// </summary>
		public static readonly KnownColor Peru = 0xFFCD853F;
		/// <summary>
		/// KnownColor Pink = 0xFFFFC0CB
		/// </summary>
		public static readonly KnownColor Pink = 0xFFFFC0CB;
		/// <summary>
		/// KnownColor Plum = 0xFFDDA0DD
		/// </summary>
		public static readonly KnownColor Plum = 0xFFDDA0DD;
		/// <summary>
		/// KnownColor PowderBlue = 0xFFB0E0E6
		/// </summary>
		public static readonly KnownColor PowderBlue = 0xFFB0E0E6;
		/// <summary>
		/// KnownColor Purple = 0xFF800080
		/// </summary>
		public static readonly KnownColor Purple = 0xFF800080;
		/// <summary>
		/// KnownColor Red = 0xFFFF0000
		/// </summary>
		public static readonly KnownColor Red = 0xFFFF0000;
		/// <summary>
		/// KnownColor RosyBrown = 0xFFBC8F8F
		/// </summary>
		public static readonly KnownColor RosyBrown = 0xFFBC8F8F;
		/// <summary>
		/// KnownColor RoyalBlue = 0xFF4169E1
		/// </summary>
		public static readonly KnownColor RoyalBlue = 0xFF4169E1;
		/// <summary>
		/// KnownColor SaddleBrown = 0xFF8B4513
		/// </summary>
		public static readonly KnownColor SaddleBrown = 0xFF8B4513;
		/// <summary>
		/// KnownColor Salmon = 0xFFFA8072
		/// </summary>
		public static readonly KnownColor Salmon = 0xFFFA8072;
		/// <summary>
		/// KnownColor SandyBrown = 0xFFF4A460
		/// </summary>
		public static readonly KnownColor SandyBrown = 0xFFF4A460;
		/// <summary>
		/// KnownColor SeaGreen = 0xFF2E8B57
		/// </summary>
		public static readonly KnownColor SeaGreen = 0xFF2E8B57;
		/// <summary>
		/// KnownColor SeaShell = 0xFFFFF5EE
		/// </summary>
		[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "SeaShell")]
		public static readonly KnownColor SeaShell = 0xFFFFF5EE;
		/// <summary>
		/// KnownColor Sienna = 0xFFA0522D
		/// </summary>
		public static readonly KnownColor Sienna = 0xFFA0522D;
		/// <summary>
		/// KnownColor Silver = 0xFFC0C0C0
		/// </summary>
		public static readonly KnownColor Silver = 0xFFC0C0C0;
		/// <summary>
		/// KnownColor SkyBlue = 0xFF87CEEB
		/// </summary>
		public static readonly KnownColor SkyBlue = 0xFF87CEEB;
		/// <summary>
		/// KnownColor SlateBlue = 0xFF6A5ACD
		/// </summary>
		public static readonly KnownColor SlateBlue = 0xFF6A5ACD;
		/// <summary>
		/// KnownColor SlateGray = 0xFF708090
		/// </summary>
		public static readonly KnownColor SlateGray = 0xFF708090;
		/// <summary>
		/// KnownColor Snow = 0xFFFFFAFA
		/// </summary>
		public static readonly KnownColor Snow = 0xFFFFFAFA;
		/// <summary>
		/// KnownColor SpringGreen = 0xFF00FF7F
		/// </summary>
		public static readonly KnownColor SpringGreen = 0xFF00FF7F;
		/// <summary>
		/// KnownColor SteelBlue = 0xFF4682B4
		/// </summary>
		public static readonly KnownColor SteelBlue = 0xFF4682B4;
		/// <summary>
		/// KnownColor Tan = 0xFFD2B48C
		/// </summary>
		public static readonly KnownColor Tan = 0xFFD2B48C;
		/// <summary>
		/// KnownColor Teal = 0xFF008080
		/// </summary>
		public static readonly KnownColor Teal = 0xFF008080;
		/// <summary>
		/// KnownColor Thistle = 0xFFD8BFD8
		/// </summary>
		public static readonly KnownColor Thistle = 0xFFD8BFD8;
		/// <summary>
		/// KnownColor Tomato = 0xFFFF6347
		/// </summary>
		public static readonly KnownColor Tomato = 0xFFFF6347;
		/// <summary>
		/// KnownColor Transparent = 0x00FFFFFF
		/// </summary>
		public static readonly KnownColor Transparent = 0x00FFFFFF;
		/// <summary>
		/// KnownColor Turquoise = 0xFF40E0D0
		/// </summary>
		public static readonly KnownColor Turquoise = 0xFF40E0D0;
		/// <summary>
		/// KnownColor Violet = 0xFFEE82EE
		/// </summary>
		public static readonly KnownColor Violet = 0xFFEE82EE;
		/// <summary>
		/// KnownColor Wheat = 0xFFF5DEB3
		/// </summary>
		public static readonly KnownColor Wheat = 0xFFF5DEB3;
		/// <summary>
		/// KnownColor White = 0xFFFFFFFF
		/// </summary>
		public static readonly KnownColor White = 0xFFFFFFFF;
		/// <summary>
		/// KnownColor WhiteSmoke = 0xFFF5F5F5
		/// </summary>
		public static readonly KnownColor WhiteSmoke = 0xFFF5F5F5;
		/// <summary>
		/// KnownColor Yellow = 0xFFFFFF00
		/// </summary>
		public static readonly KnownColor Yellow = 0xFFFFFF00;
		/// <summary>
		/// KnownColor YellowGreen = 0xFF9ACD32
		/// </summary>
		public static readonly KnownColor YellowGreen = 0xFF9ACD32;
		#endregion

		#endregion

		#region Constructors
		/// <summary>
		/// Constructor
		/// </summary>
		/// <param name="color"></param>
		public KnownColor(Int64 color)
		{
			this.ColorValue = color;
		}
		#endregion

		#region Operators

		/// <summary>
		/// Converts a <see cref="KnownColor"/> to a <see cref="SolidColorBrush"/>.
		/// </summary>
		/// <param name="color">The desired color for the brush.</param>
		/// <returns>A <see cref="SolidColorBrush"/>.</returns>
		public static explicit operator Brush(KnownColor color)
		{
			return new SolidColorBrush(color);
		}
		/// <summary>
		/// Converts a <see cref="KnownColor"/> to a <see cref="Color"/>.
		/// </summary>
		/// <param name="color">The desired color.</param>
		/// <returns>The requested <see cref="Color"/>.</returns>
		public static implicit operator Color(KnownColor color)
		{
			Int64 value = color;

			Color clr = Color.FromArgb(
				(byte)(value >> 24),
				(byte)(value >> 16),
				(byte)(value >> 8),
				(byte)value
				);

			return clr;
		}
		/// <summary>
		/// Converts an <see cref="Int64"/> to a <see cref="KnownColor"/>.
		/// </summary>
		/// <param name="color">The color expressed as an <see cref="Int64"/>.</param>
		/// <returns>The <see cref="KnownColor"/>.</returns>
		public static implicit operator KnownColor(Int64 color)
		{
			return new KnownColor(color);
		}
		/// <summary>
		/// Converts a <see cref="KnownColor"/> to an <see cref="Int64"/>.
		/// </summary>
		/// <param name="color">The <see cref="KnownColor"/>.</param>
		/// <returns>An <see cref="Int64"/> value of the color.</returns>
		public static implicit operator Int64(KnownColor color)
		{
			return color.ColorValue;
		}
		/// <summary>
		/// Indicates whether this instance and a specified object are equal.
		/// </summary>
		/// <param name="obj">Another <see cref="KnownColor"/> to compare to.</param>
		/// <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
		public override bool Equals(object obj)
		{
			if (obj is KnownColor)
			{
				var color = (KnownColor)obj;
				return (this == color);
			}
			return false;
		}
		/// <summary>
		/// Indicates whether this instance and a specified <see cref="KnownColor"/> are equal.
		/// </summary>
		/// <param name="color">Another <see cref="KnownColor"/> to compare to.</param>
		/// <returns>true if obj and this instance are the same type and represent the same value; otherwise, false.</returns>
		public bool Equals(KnownColor color)
		{
			return (this == color);
		}
		/// <summary>
		/// Determines if the two instance are equal.
		/// </summary>
		/// <param name="color1">The first <see cref="KnownColor"/> to compare.</param>
		/// <param name="color2">The second <see cref="KnownColor"/> to compare.</param>
		/// <returns>true if the two instances are equal; otherwise false.</returns>
		public static bool operator ==(KnownColor color1, KnownColor color2)
		{
			if (color1.ColorValue != color2.ColorValue)
				return false;
			return true;
		}
		/// <summary>
		/// Determines if the two instance are NOT equal.
		/// </summary>
		/// <param name="color1">The first <see cref="KnownColor"/> to compare.</param>
		/// <param name="color2">The second <see cref="KnownColor"/> to compare.</param>
		/// <returns>true if the two instances are NOT equal; otherwise false.</returns>
		public static bool operator !=(KnownColor color1, KnownColor color2)
		{
			return !(color1 == color2);
		}
		#endregion

		#region Overrides
		/// <summary>
		/// Gets the Hashcode
		/// </summary>
		/// <returns></returns>
		public override int GetHashCode()
		{
			return this.ColorValue.GetHashCode();
		}
		/// <summary>
		/// Gets the color name
		/// </summary>
		/// <returns>The color name</returns>
		public override string ToString()
		{
			return GetName(this.ColorValue);
		}
		/// <summary>
		/// Gets the Hex String of this Color
		/// </summary>
		/// <returns>The Hex String of this Color</returns>
		public string ToHexString()
		{
			return ((Color)this).ToString();
		}
		static string GetName(long colorValue)
		{
			BindingFlags flags = BindingFlags.Public | BindingFlags.Static;
			foreach (var field in typeof(KnownColor).GetFields(flags))
			{
				KnownColor color = (KnownColor)field.GetValue(null);
				if (color.ColorValue == colorValue)
					return field.Name;
			}
			return "UnknownColor";
		}
		#endregion
	}
	#endregion
}